package com.siwei.apply.mapper;

import com.siwei.apply.domain.Tdgy;
import com.siwei.apply.domain.res.ProjectSupplyRes;
import com.siwei.apply.domain.vo.TdgyUpdateVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

// 土地供应 Mapper 接口
@Mapper
public interface TdgyMapper {
    /**
     * 根据项目id查询是否存在
     */
    Boolean isExit(String projectId);

    /**
     * 添加土地供应信息
     *
     * @param tdgy
     */
    void add(Tdgy tdgy);

    /**
     * 获取土地供应信息
     *
     * @param projectId
     * @return
     */
    Tdgy get(String projectId);

    /**
     * 获取土地供应信息（按主键ID）
     */
    Tdgy getById(@Param("id") String id);

    /**
     * 更新土地供应信息
     *
     * @param tdgyUpdateVo
     */
    void update(TdgyUpdateVo tdgyUpdateVo);

    /**
     * 更新土地供应的上链状态
     * @param id 土地供应ID
     * @param hasOnchain 是否已上链
     */
    void updateHasOnchain(@Param("id") String id, @Param("hasOnchain") Boolean hasOnchain);

    /**
     * 按 gd_type 统计数量和求和 gd_area
     * 返回字段：gdType, count, gdArea, gdUnit，可选传入 projectType 过滤 t_project.project_type
     */
    List<ProjectSupplyRes> countAndSumByGdType(@Param("projectType") Integer projectType);
}
